home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-11-16 | 23.0 KB | 1,297 lines |
-
- ** LIGHTSOURCED VECTOR
- ** CODED BY CRADON/MATRIX
- ** ASM-ONE FORMAT
-
- *******************************************************************************
-
- SECTION A,CODE_C
-
- START MOVEM.L D0-A6,-(A7)
- MOVE.W $DFF01C,INTENA
- MOVE.W $DFF002,DMACON
- MOVE.W $DFF010,ADKCON
- MOVE.W #%0111111111111111,$DFF096
- MOVE.W #%0111111111111111,$DFF09A
- MOVE.W #%0111111111111111,$DFF09C
- JSR INITCOP
- JSR INITIRQ
- MOVE.W #%1000001111000000,$DFF096
- MOVE.W #%1100000000110000,$DFF09A
- LOOP BTST #6,$BFE001
- BNE.B LOOP
- ENDE MOVE.W #%0111111111111111,$DFF096
- MOVE.W #%0111111111111111,$DFF09A
- MOVE.W #%0111111111111111,$DFF09C
- MOVE.L OLDIRQ,$00006C
- MOVE.W DMACON,D0
- OR.W #$8000,D0
- MOVE.W D0,$DFF096
- MOVE.W ADKCON,D0
- OR.W #$8000,D0
- MOVE.W D0,$DFF09E
- MOVE.W INTENA,D0
- OR.W #$C000,D0
- MOVE.W D0,$DFF09A
- MOVE.W #0,$DFF088
- MOVEM.L (A7)+,D0-A6
- RTS
-
- ** THIRD LEVEL INTERRUPT ******************************************************
-
- MYIRQ MOVEM.L D0-A6,-(A7)
- JSR CLEAR
- JSR VECTOR
- JSR FLIP_SCREEN
- MOVE.W #$20,$DFF09C
- MOVEM.L (A7)+,D0-A6
- RTE
-
- ** FILLED VECTOR **************************************************************
-
- VECTOR JSR ANGLES ; CALCULATE NEW VIEW ANGLE
- LEA.L POINTS(PC),A1 ; POINT ON NEXT PLANE DATA
- LEA.L SIN_TABLE,A2 ; POINT AT SINUS TABLE
- LEA.L COS_TABLE,A3 ; POINT AT COSINUS TABLE
- OBLOOP CMPI.W #$FFFF,(A1) ; NO MORE LINES IN THIS PLANE?
- BEQ.W VECOUT
- MOVE.L SCREEN_ADRESS,A0 ; LETS WORK ON THIS FRAME
- MOVE.W (A1)+,D0 ; X-NORMAL
- MOVE.W (A1)+,D1 ; Y-NORMAL
- MOVE.W (A1)+,D2 ; Z-NORMAL
- JSR NORMAL ; ROTATE PLANE'S VECTOR-NORMAL.
- MOVE.W (A1)+,D3 ; GET Z-COORD LIMIT
- CMP.W D3,D2 ; FRONT- OR BACKSIDE OF PLANE?
- BGT.B PLANE ; IF FRONT, THEN DRAW PLANE
- MOVE.W (A1)+,D0
- MOVE.W (A1)+,D0
- LSL.W #3,D0 ; *4 *2 = DELTA-ADRESS IN BYTES
- EXT.L D0
- ADD.L D0,A1 ; POINT PÅ NY PLAN
- BRA.B OBLOOP
- PLANE MOVE.W (A1)+,D0 ; SELECTED COLOUR (BITPLAN)
- MOVE.W #10240,D1
- MULU D0,D1
- ADD.L D1,A0
- JSR LIGHT ; LIGHTSOURCE THIS COMING PLANE
- MOVE.W (A1)+,COUNTER ; ANTAL LINIER I PLAN
- LINIER MOVE.W (A1)+,D0 ; GET LINE COORDINATES
- MOVE.W (A1)+,D1
- MOVE.W (A1)+,D2
- SUB.W XCENTER,D0 ; OBJECT WITH CENTER IN ORIGO
- SUB.W YCENTER,D1
- SUB.W ZCENTER,D2
- BSR.B ROTATE ; ROTATE 3D POINT
- ADD.W ZCENTER,D2
- JSR CONVERT ; CONVERT FROM 3D TO 2D
- ADD.W XCENTER,D0
- ADD.W YCENTER,D1
- JSR EXTREM ; NOTE PLANE MAX AND MIN
- JSR LINE ; DRAW LINE FROM LAST POINT
- SUB.W #1,COUNTER
- TST.W COUNTER ; PLANE FINISHED?
- BNE.B LINIER ; IF NOT: WORK ON NEXT LINE
- JSR FILL ; FILL PLANE
- JSR GLOBAL ; NOTE GLOBAL EXTREMES (CLEAR)
- MOVE.W #256,YMIN ; RESET FOR NEXT PLANE
- MOVE.W #0,YMAX
- MOVE.W #320,XMIN
- MOVE.W #0,XMAX
- BRA.W OBLOOP
- VECOUT RTS
-
- ** ROTATE 3D POINT ************************************************************
-
- ROTATE MOVE.W XVINKEL,D5 ; X ANGLE
- MOVE.W YVINKEL,D6 ; Y ANGLE
- MOVE.W ZVINKEL,D7 ; Z ANGLE
- LSL.W #1,D5 ; X ANGLE *2
- LSL.W #1,D6 ; Y ANGLE *2
- LSL.W #1,D7 ; Z ANGLE *2
- MOVE.W (A3,D5.W),D3 ; COS(XGRAD)
- MOVE.W (A2,D5.W),D4 ; SIN(XGRAD)
- MULS D1,D3 ; Y*COS(XGRAD)
- MULS D2,D4 ; Z*SIN(XGRAD)
- SUB.L D4,D3 ; Y*COS(XGRAD) - Z*SIN(XGRAD)
- LSL.L #2,D3 ; 4*(Y*COS(XGRAD)-Z*SIN(XGRAD))
- MOVE.L D3,Y1 ; Y-COORDINATE AROUND X AXIS
- MOVE.W (A2,D5.W),D3 ; SIN(XGRAD)
- MOVE.W (A3,D5.W),D4 ; COS(XGRAD)
- MULS D1,D3 ; Y*SIN(XGRAD)
- MULS D2,D4 ; Z*COS(XGRAD)
- ADD.L D4,D3 ; Y*SIN(XGRAD) + Z*COS(XGRAD)
- LSL.L #2,D3 ; 4*(Y*SIN(XGRAD)+Z*COS(XGRAD))
- MOVE.L D3,Z1 ; Z-COORDINATE AROUND X AXIS
- MOVE.W (A3,D6.W),D3 ; COS(YGRAD)
- MOVE.W (A2,D6.W),D4 ; SIN(YGRAD)
- MULS D0,D3 ; X*COS(YGRAD)
- MULS Z1,D4 ; Z*SIN(YGRAD)
- SUB.L D4,D3 ; X*COS(YGRAD) - Z*SIN(YGRAD)
- LSL.L #2,D3 ; 4*(X*COS(YGRAD)-Z*SIN(YGRAD))
- MOVE.L D3,X2 ; X-COORDINATE AROUND Y AXIS
- MOVE.W (A2,D6.W),D2 ; SIN(YGRAD)
- MOVE.W (A3,D6.W),D4 ; COS(YGRAD)
- MULS D0,D2 ; X*SIN(YGRAD)
- MULS Z1,D4 ; Z*COS(YGRAD)
- ADD.L D4,D2 ; X*SIN(YGRAD) + Z*COS(YGRAD)
- LSL.L #2,D2 ; 4*(X*SIN(YGRAD)+Z*COS(YGRAD))
- SWAP D2 ; FAST DIVISION BY 65535
- EXT.L D2 ; Z-COORDINATE AROUND Y AND X
- MOVE.W (A3,D7.W),D0 ; COS(ZGRAD)
- MOVE.W (A2,D7.W),D4 ; SIN(ZGRAD)
- MULS X2,D0 ; X*COS(ZGRAD)
- MULS Y1,D4 ; Y*SIN(ZGRAD)
- SUB.L D4,D0 ; X*COS(ZGRAD) - Y*SIN(ZGRAD)
- LSL.L #2,D0 ; 4*(X*COS(ZGRAD)-Y*SIN(ZGRAD))
- SWAP D0 ; FAST DIVISION BY 65535
- EXT.L D0 ; X-COORDINATE AROUND Y AND Z
- MOVE.W (A2,D7.W),D1 ; SIN(ZGRAD)
- MOVE.W (A3,D7.W),D3 ; COS(ZGRAD)
- MULS X2,D1 ; X*SIN(ZGRAD)
- MULS Y1,D3 ; Y*COS(ZGRAD)
- ADD.L D3,D1 ; X*SIN(ZGRAD) + Y*COS(ZGRAD)
- LSL.L #2,D1 ; 4*(X*SIN(ZGRAD)+Y*COS(ZGRAD))
- SWAP D1 ; FAST DIVISION BY 65535
- EXT.L D1 ; Y-COORDINATE AROUND X AND Z
- RTS
-
- ** ROTATE PLANES VECTOR NORMAL ************************************************
-
- NORMAL MOVE.W XVINKEL,D5
- MOVE.W YVINKEL,D6
- LSL.W #1,D5
- LSL.W #1,D6
- MOVE.W (A2,D5.W),D3
- MOVE.W (A3,D5.W),D4
- MULS D1,D3
- MULS D2,D4
- ADD.L D4,D3
- LSL.L #2,D3
- MOVE.L D3,Z1
- MOVE.W (A2,D6.W),D2
- MOVE.W (A3,D6.W),D4
- MULS D0,D2
- MULS Z1,D4
- ADD.L D4,D2
- LSL.L #2,D2
- SWAP D2
- EXT.L D2
- RTS
-
- ** CONVERT POINT FROM 3D TO 2D ************************************************
-
- CONVERT MULS ZOOM,D0
- MULS ZOOM,D1
- DIVS D2,D0
- DIVS D2,D1
- RTS
-
- ** DRAW LINE ******************************************************************
-
- LINE EXT.L D0 ; RULE OUT ANY CRAP!
- EXT.L D1
- TST.W (A1)+ ; DRAW LINE FROM LAST POINT?
- BNE.B DRAW
- MOVE.W D0,LASTX ; NO! THEN JUST SAVE THIS POINT
- MOVE.W D1,LASTY
- RTS
- DRAW MOVE.W LASTX,D2
- MOVE.W LASTY,D3
- MOVE.W D0,LASTX
- MOVE.W D1,LASTY
- EXG D1,D2
- CMP D2,D3
- BEQ.W DRAWOUT
- BPL.B BLINE
- EXG D0,D1
- EXG D2,D3
- BLINE SUBQ #1,D3
- MOVE D1,D6
- SUB D0,D6
- BMI.S XL0
- MOVE.W D3,D7
- SUB.W D2,D7
- BMI.S XG0YL0
- MOVE.W D7,D5
- SUB.W D6,D5
- BMI.S O4
- MOVE.B #1,BLTC1
- BRA.S OCTOK
- O4 MOVE.B #17,BLTC1
- BRA.S OCTOK
- XG0YL0 NEG.W D7
- MOVE.W D7,D5
- SUB.W D6,D5
- BMI.S O6
- MOVE.B #5,BLTC1
- BRA.S OCTOK
- O6 MOVE.B #25,BLTC1
- BRA.S OCTOK
- XL0 NEG.W D6
- MOVE.W D3,D7
- SUB.W D2,D7
- BMI.S XL0YL0
- MOVE.W D7,D5
- SUB.W D6,D5
- BMI.S O5
- MOVE.B #9,BLTC1
- BRA.S OCTOK
- O5 MOVE.B #21,BLTC1
- BRA.S OCTOK
- XL0YL0 NEG.W D7
- MOVE.W D7,D5
- SUB.W D6,D5
- BMI.S O7
- MOVE.B #13,BLTC1
- BRA.S OCTOK
- O7 MOVE.B #29,BLTC1
- OCTOK MOVEQ #0,D4
- MOVE.W D0,D4
- AND.W #15,D4
- SWAP D4
- LSR.L #4,D4
- OR.W #$B4A,D4
- MOVEQ #0,D3
- LSL #3,D2
- MOVE D2,D3
- LSL #2,D2
- ADD D2,D3
- LSR #3,D0
- AND.B #$FE,D0
- ADD D0,D3
- ADD.L A0,D3
- TST D5
- BMI.S XMAXI
- EXG D6,D7
- NEG.W D5
- XMAXI MOVE.W D6,D1
- ADD.W #1,D1
- LSL.W #6,D1
- ADD.W #2,D1
- MOVE.W D5,D0
- ADD.W D7,D0
- LSL.W #2,D7
- MOVE.W D0,D2
- SUB.W D6,D2
- ADD.W D2,D2
- TST.W D0
- BPL.S PLUS
- OR.B #64,BLTC1
- PLUS ADD.W D0,D0
- EXT.L D0
- WDRAW BTST #6,$DFF002
- BNE.S WDRAW
- CLR D6
- MOVE.B BLTC1,D6
- OR.W #2,D6
- MOVE.W D6,$DFF042
- MOVE.W D4,$DFF040
- CLR $DFF070
- MOVE.W #$8000,$DFF074
- MOVE.W #$FFFF,$DFF072
- MOVE.L #$FFFFFFFF,$DFF044
- MOVE.W #40,$DFF060
- MOVE.W #40,$DFF066
- MOVE.W D7,$DFF062
- MOVE.W D2,$DFF064
- MOVE.L D3,$DFF048
- MOVE.L D3,$DFF054
- MOVE.L D0,$DFF050
- MOVE.W D1,$DFF058
- DRAWOUT RTS
-
- ** NOTE MIN AND MAX FOR THIS PLANE ********************************************
-
- EXTREM CMP.W YMIN,D1
- BHI NOYMIN
- MOVE.W D1,YMIN
- NOYMIN CMP.W YMAX,D1
- BLT NOYMAX
- MOVE.W D1,YMAX
- NOYMAX CMP.W XMIN,D0
- BHI NOXMIN
- MOVE.W D0,XMIN
- NOXMIN CMP.W XMAX,D0
- BLT NOXMAX
- MOVE.W D0,XMAX
- NOXMAX RTS
-
- ** NOTE MIN AND MAX FOR ALL PLANES ********************************************
-
- GLOBAL MOVE.W XMIN,D0
- CMP.W GLOBALXMIN,D0
- BHI NOGLOBX
- MOVE.W D0,GLOBALXMIN
- NOGLOBX MOVE.W XMAX,D0
- CMP.W GLOBALXMAX,D0
- BLT GLOBOY1
- MOVE.W D0,GLOBALXMAX
- GLOBOY1 MOVE.W YMIN,D0
- CMP.W GLOBALYMIN,D0
- BHI NOGLOBY
- MOVE.W D0,GLOBALYMIN
- NOGLOBY MOVE.W YMAX,D0
- CMP.W GLOBALYMAX,D0
- BLT GLOBOUT
- MOVE.W D0,GLOBALYMAX
- GLOBOUT RTS
-
- ** CLACULATE NEW VIEW ANGLE ***************************************************
-
- ANGLES MOVE.W YDELTA,D0
- ADD.W D0,YVINKEL ; NEW Y ANGLE
- CMP.W #512,YVINKEL
- BLT.B XANGLE
- SUB.W #512,YVINKEL
- XANGLE MOVE.W XDELTA,D0
- ADD.W D0,XVINKEL ; NEW X ANGLE
- CMP.W #512,XVINKEL
- BLT.B ZANGLE
- SUB.W #512,XVINKEL
- ZANGLE MOVE.W ZDELTA,D0
- ADD.W D0,ZVINKEL ; NEW Z ANGLE
- CMP.W #512,ZVINKEL
- BLT.B ANGLOUT
- SUB.W #512,ZVINKEL
- ANGLOUT RTS
-
- ** LIGHTSOURCE CURRENT PLANE **************************************************
-
- LIGHT LSL.W #1,D0 ; D0 = OFFSET IN OFFSET-TABLE!
- LEA.L COLOUR,A4
- LEA.L OFFSET(PC),A5
- LEA.L COLOURS(PC),A6
- MOVE.W (A5,D0.W),D1 ; D1 = OFFSET FROM COLOUR LABEL
- DIVU #7,D2 ; ADJUST TO COLOURSTABLE OFFSET
- LSL.W #1,D2
- MOVE.W (A6,D2.W),D0
- MOVE.W D0,(A4,D1.W)
- RTS
-
- ** FLIP BETWEEN FRAMESBUFFERS *************************************************
-
- FLIP_SCREEN
- CMP.L #SCREEN1,SCREEN_ADRESS
- BEQ.S FLIP_TO_SCREEN2
- LEA.L PLANES,A0
- MOVE.L #SCREEN2,D0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- MOVE.L #SCREEN2+[256*40],D0
- MOVE.W D0,14(A0)
- SWAP D0
- MOVE.W D0,10(A0)
- MOVE.L #SCREEN2+[512*40],D0
- MOVE.W D0,22(A0)
- SWAP D0
- MOVE.W D0,18(A0)
- MOVE.L #SCREEN1,SCREEN_ADRESS
- RTS
- FLIP_TO_SCREEN2
- LEA.L PLANES,A0
- MOVE.L #SCREEN1,D0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- MOVE.L #SCREEN1+[256*40],D0
- MOVE.W D0,14(A0)
- SWAP D0
- MOVE.W D0,10(A0)
- MOVE.L #SCREEN1+[512*40],D0
- MOVE.W D0,22(A0)
- SWAP D0
- MOVE.W D0,18(A0)
- MOVE.L #SCREEN2,SCREEN_ADRESS
- RTS
-
- ** CLEAR SCREEN ***************************************************************
-
- CLEAR MOVEQ #0,D1
- MOVEQ #0,D2
- MOVEQ #0,D3
- MOVE.L SCREEN_ADRESS,D0
- MOVE.W GLOBALXMIN,D1
- MOVE.W GLOBALXMAX,D2
- SUB.W D1,D2 ; D2 = CLEAR WIDTH IN PIXELS
- DIVU #8,D1 ; D1 = LEFT PIXELS IN BYTES
- EXT.L D1
- SUB.W #1,D1
- ADD.L D1,D0 ; D0 = START ADDRESS
- DIVU #16,D2 ; D2 = CLEAR WIDTH IN WORDS
- ADD.W #3,D2 ; FOR SAFETY
- MOVE.W D2,D1
- MULU #2,D1 ; D1 = CLEAR WIDTH IN BYTES
- MOVE.W #40,D3
- SUB.W D1,D3 ; D3 = CLEAR MODULO
- MOVE.W GLOBALYMIN,D4
- SUB.W SAFETY,D4
- MOVE.W GLOBALYMAX,D5
- SUB.W D4,D5 ; HIGHT
- ADD.W SAFETY,D5
- MULU #40,D4
- EXT.L D4
- ADD.L D4,D0
- LSL.W #6,D5
- OR.W D5,D2 ; HIGHT AND WIDTH
- WAIT1 BTST #14,$DFF002
- BNE.S WAIT1
- MOVE.W #$0100,$DFF040
- MOVE.W #$0000,$DFF042
- MOVE.L #$FFFFFFFF,$DFF044
- MOVE.L D0,$DFF054
- MOVE.W D3,$DFF066
- MOVE.W D2,$DFF058
- ADD.L #10240,D0 ; POINT ON NEXT PLANE
- WAIT2 BTST #14,$DFF002
- BNE.S WAIT2
- MOVE.W #$0100,$DFF040
- MOVE.W #$0000,$DFF042
- MOVE.L D0,$DFF054
- MOVE.W D3,$DFF066
- MOVE.W D2,$DFF058
- ADD.L #10240,D0 ; POINT ON NEXT PLANE
- WAIT3 BTST #14,$DFF002
- BNE.S WAIT3
- MOVE.W #$0100,$DFF040
- MOVE.W #$0000,$DFF042
- MOVE.L D0,$DFF054
- MOVE.W D3,$DFF066
- MOVE.W D2,$DFF058
- MOVE.W #320,GLOBALXMIN ; RESET GLOBALS
- MOVE.W #0,GLOBALXMAX
- MOVE.W #256,GLOBALYMIN
- MOVE.W #0,GLOBALYMAX
- RTS
-
- ** BLITTER FILL (DESCENDING MODE) *********************************************
-
- FILL MOVE.L A0,D0 ; SCREEN ADDRESS
- MOVEQ #0,D1
- MOVEQ #0,D2
- MOVEQ #0,D3
- MOVE.W YMAX,D1
- MULU #40,D1
- ADD.L D1,D0 ; D0 = BUTTOM VERTICAL LINE
- MOVE.W #320,D2
- SUB.W XMAX,D2
- LSR.W #3,D2 ; 16 PIXEL PRECISION
- EXT.L D2
- SUB.L D2,D0 ; D0 = START ADDRESS
- MOVE.W XMAX,D1
- SUB.W XMIN,D1 ; D1 = FILL WIDTH IN PIXELS
- LSR.W #4,D1 ; D1 = FILL WIDTH IN WORDS
- ADDQ.W #3,D1
- MOVE.W D1,D2
- MOVE.W #40,D3 ; FULL SCREEN MODULO
- LSL.W #1,D2 ; D2 = FILL WIDTH IN BYTES
- SUB.W D2,D3 ; D3 = FILL MODULO
- MOVE.W YMAX,D2
- SUB.W YMIN,D2 ; D2 = HIGHT IN PIXELS
- LSL.W #6,D2 ; PLACE HIGHT ON RIGHT BITS
- OR.W D2,D1 ; D1 = FILL HIGHT AND WIDTH
- FREADY BTST #14,$DFF002
- BNE.B FREADY
- MOVE.L D0,$DFF050
- MOVE.L D0,$DFF054
- MOVE.W #$09F0,$DFF040 ; MINTERM D=A
- MOVE.W #%0000000000010010,$DFF042 ; EXCLUSIVE FILL (BIT 4)
- MOVE.L #$FFFFFFFF,$DFF044 ; MASKS
- MOVE.W D3,$DFF064 ; A MODULO
- MOVE.W D3,$DFF066 ; D MODULO
- MOVE.W D1,$DFF058 ; FILL HIGHT AND START ADDRESS
- RTS
-
- ** SET COPPER FOR SELFACTIVATION **********************************************
-
- INITCOP LEA PLANES,A0
- MOVE.L #SCREEN2,D0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- SWAP D0
- MOVE.L #COPPER,D0
- LEA.L ADRESS,A0
- MOVE.W D0,6(A0)
- SWAP D0
- MOVE.W D0,2(A0)
- MOVE.L #COPPER,$DFF084
- MOVE.B #$00,$DFF08A
- RTS
- INITIRQ MOVE.L $6C,OLDIRQ
- MOVE.L #MYIRQ,$6C
- RTS
-
- ** DATA ***********************************************************************
-
- OLDIRQ DC.L 0
- INTENA DC.W 0
- DMACON DC.W 0
- ADKCON DC.W 0
- SCREEN_ADRESS DC.L SCREEN1
- XCENTER DC.W 159
- YCENTER DC.W 128
- ZCENTER DC.W 460
- ZOOM DC.W 210
- SAFETY DC.W 6 ; HIGH SAFETY TAKES MORE RASTER
- COUNTER DC.W 0
- XVINKEL DC.W 0
- YVINKEL DC.W 0
- ZVINKEL DC.W 0
- YDELTA DC.W 2
- XDELTA DC.W 3
- ZDELTA DC.W 1
- Y1 DC.L 0
- Z1 DC.L 0
- X2 DC.L 0
- LASTX DC.W 0
- LASTY DC.W 0
- YMIN DC.W 256
- YMAX DC.W 0
- XMIN DC.W 320
- XMAX DC.W 0
- GLOBALYMIN DC.W 120
- GLOBALYMAX DC.W 140
- GLOBALXMIN DC.W 150
- GLOBALXMAX DC.W 170
- OFFSET DC.W 2,6,10,2,2,2,2,2
- COLOURS DC.W $000,$002,$013,$024,$035,$046,$057,$068
- DC.W $079,$08A,$09B,$0AC,$0BD,$0CE,$0DF,$FFF
- BLTC1 DC.B 0
- EVEN
-
- ** OBJECT DATA ****************************************************************
- **
- ** STRUCTURE: DC.W XN,YN,ZX,LIMIT,BITPLAN,COUNT
- ** DC.W X,Y,Z,S
- **
- ** (XN,YN,ZN): PLANE NORMAL-VECTOR (MUST STAND IN AN 90° ANGLE ON PLANE).
- ** LIMIT: ZN LIMIT (TO DETERMINE WHEN WE ARE SEEING FRONT OR BACKSIDE).
- ** BITPLAN: SELECT COLOUR FOR THIS PLANE 0,1,2.
- ** COUNT: NUMBER OF POINTS THAT THIS PLANE CONSISTS OF.
- ** (X,Y,Z): POINT COORDINATES.
- ** S: 0:MOVE TO THIS POINT. 1:DRAW LINE FROM THIS POINT TO LAST ONE.
- **
-
- POINTS DC.W 0,0,100,27,0,5
- DC.W 29,-2,330,0
- DC.W 29,258,330,1
- DC.W 289,258,330,1
- DC.W 289,-2,330,1
- DC.W 29,-2,330,1
- DC.W 100,0,0,27,1,5
- DC.W 29,-2,590,0
- DC.W 29,258,590,1
- DC.W 29,258,330,1
- DC.W 29,-2,330,1
- DC.W 29,-2,590,1
- DC.W -100,0,0,27,1,5
- DC.W 289,-2,590,0
- DC.W 289,258,590,1
- DC.W 289,258,330,1
- DC.W 289,-2,330,1
- DC.W 289,-2,590,1
- DC.W 0,0,-100,27,0,5
- DC.W 29,-2,590,0
- DC.W 29,258,590,1
- DC.W 289,258,590,1
- DC.W 289,-2,590,1
- DC.W 29,-2,590,1
- DC.W 0,-100,0,27,2,5
- DC.W 29,258,330,0
- DC.W 29,258,590,1
- DC.W 289,258,590,1
- DC.W 289,258,330,1
- DC.W 29,258,330,1
- DC.W 0,100,0,27,2,5
- DC.W 29,-2,330,0
- DC.W 29,-2,590,1
- DC.W 289,-2,590,1
- DC.W 289,-2,330,1
- DC.W 29,-2,330,1
-
- DC.W $FFFF,$FFFF ; SIGNAL: NO MORE PLANES TO DRAW!
-
- SECTION B,DATA_C
-
- ** COPPERLIST *****************************************************************
-
- COPPER DC.W $0106,$0000,$01FC,$0000
- DC.W $008E,$2C81,$0090,$2CC1
- DC.W $0092,$0038,$0094,$00D0
- DC.W $0102,$0000,$0104,$0000
- DC.W $0108,$0000,$010A,$0000
-
- COLOUR DC.W $0182,$0400 ; 2
- DC.W $0184,$0600 ; 6
- DC.W $0188,$0800 ; 10
-
- DC.W $0186,$0999,$018A,$00F0
- DC.W $018C,$00F0,$018E,$0813
-
- PLANES DC.W $00E0,$0000,$00E2,$0000
- DC.W $00E4,$0000,$00E6,$0000
- DC.W $00E8,$0000,$00EA,$0000
- DC.W $3001,$FF00,$0100,$3200
- DC.W $FFE1,$FFFE,$2901,$FF00
- DC.W $0100,$0200
-
- ADRESS DC.W $0084,$0000
- DC.W $0086,$0000
- DC.W $008A,$0000 ; RESTART COPPERLIST
- DC.W $FFFF,$FFFE
-
- ** SCREEN *********************************************************************
-
- SCREEN1 BLK.B [320/8*768],$00
- SCREEN2 BLK.B [320/8*768],$00
-
- SIN_TABLE
- DC.W 0
- DC.W 201
- DC.W 402
- DC.W 603
- DC.W 803
- DC.W 1004
- DC.W 1205
- DC.W 1405
- DC.W 1605
- DC.W 1805
- DC.W 2005
- DC.W 2204
- DC.W 2404
- DC.W 2602
- DC.W 2801
- DC.W 2998
- DC.W 3196
- DC.W 3393
- DC.W 3589
- DC.W 3785
- DC.W 3980
- DC.W 4175
- DC.W 4369
- DC.W 4563
- DC.W 4756
- DC.W 4948
- DC.W 5139
- DC.W 5329
- DC.W 5519
- DC.W 5708
- DC.W 5896
- DC.W 6083
- DC.W 6269
- DC.W 6455
- DC.W 6639
- DC.W 6822
- DC.W 7005
- DC.W 7186
- DC.W 7366
- DC.W 7545
- DC.W 7723
- DC.W 7900
- DC.W 8075
- DC.W 8249
- DC.W 8423
- DC.W 8594
- DC.W 8765
- DC.W 8934
- DC.W 9102
- DC.W 9268
- DC.W 9434
- DC.W 9597
- DC.W 9759
- DC.W 9920
- DC.W 10079
- DC.W 10237
- DC.W 10393
- DC.W 10548
- DC.W 10701
- DC.W 10853
- DC.W 11002
- DC.W 11150
- DC.W 11297
- DC.W 11442
- DC.W 11585
- DC.W 11726
- DC.W 11866
- DC.W 12003
- DC.W 12139
- DC.W 12273
- DC.W 12406
- DC.W 12536
- DC.W 12665
- DC.W 12791
- DC.W 12916
- DC.W 13038
- DC.W 13159
- DC.W 13278
- DC.W 13395
- DC.W 13510
- DC.W 13622
- DC.W 13733
- DC.W 13842
- DC.W 13948
- DC.W 14053
- DC.W 14155
- DC.W 14255
- DC.W 14353
- DC.W 14449
- DC.W 14543
- DC.W 14634
- DC.W 14723
- DC.W 14810
- DC.W 14895
- DC.W 14978
- DC.W 15058
- DC.W 15136
- DC.W 15212
- DC.W 15286
- DC.W 15357
- DC.W 15426
- DC.W 15492
- DC.W 15557
- DC.W 15618
- DC.W 15678
- DC.W 15735
- DC.W 15790
- DC.W 15842
- DC.W 15892
- DC.W 15940
- DC.W 15985
- DC.W 16028
- DC.W 16069
- DC.W 16107
- DC.W 16142
- DC.W 16175
- DC.W 16206
- DC.W 16234
- DC.W 16260
- DC.W 16284
- DC.W 16305
- DC.W 16323
- DC.W 16339
- DC.W 16353
- DC.W 16364
- DC.W 16372
- DC.W 16379
- COS_TABLE
- DC.W 16382
- DC.W 16384
- DC.W 16382
- DC.W 16379
- DC.W 16372
- DC.W 16364
- DC.W 16353
- DC.W 16339
- DC.W 16323
- DC.W 16305
- DC.W 16284
- DC.W 16260
- DC.W 16234
- DC.W 16206
- DC.W 16175
- DC.W 16142
- DC.W 16107
- DC.W 16069
- DC.W 16028
- DC.W 15985
- DC.W 15940
- DC.W 15892
- DC.W 15842
- DC.W 15790
- DC.W 15735
- DC.W 15678
- DC.W 15618
- DC.W 15557
- DC.W 15492
- DC.W 15426
- DC.W 15357
- DC.W 15286
- DC.W 15212
- DC.W 15136
- DC.W 15058
- DC.W 14978
- DC.W 14895
- DC.W 14810
- DC.W 14723
- DC.W 14634
- DC.W 14543
- DC.W 14449
- DC.W 14353
- DC.W 14255
- DC.W 14155
- DC.W 14053
- DC.W 13948
- DC.W 13842
- DC.W 13733
- DC.W 13622
- DC.W 13510
- DC.W 13395
- DC.W 13278
- DC.W 13159
- DC.W 13038
- DC.W 12916
- DC.W 12791
- DC.W 12665
- DC.W 12536
- DC.W 12406
- DC.W 12273
- DC.W 12139
- DC.W 12003
- DC.W 11866
- DC.W 11726
- DC.W 11585
- DC.W 11442
- DC.W 11297
- DC.W 11150
- DC.W 11002
- DC.W 10853
- DC.W 10701
- DC.W 10548
- DC.W 10393
- DC.W 10237
- DC.W 10079
- DC.W 9920
- DC.W 9759
- DC.W 9597
- DC.W 9434
- DC.W 9268
- DC.W 9102
- DC.W 8934
- DC.W 8765
- DC.W 8594
- DC.W 8423
- DC.W 8249
- DC.W 8075
- DC.W 7900
- DC.W 7723
- DC.W 7545
- DC.W 7366
- DC.W 7186
- DC.W 7005
- DC.W 6822
- DC.W 6639
- DC.W 6455
- DC.W 6269
- DC.W 6083
- DC.W 5896
- DC.W 5708
- DC.W 5519
- DC.W 5329
- DC.W 5139
- DC.W 4948
- DC.W 4756
- DC.W 4563
- DC.W 4369
- DC.W 4175
- DC.W 3980
- DC.W 3785
- DC.W 3589
- DC.W 3393
- DC.W 3196
- DC.W 2998
- DC.W 2801
- DC.W 2602
- DC.W 2404
- DC.W 2204
- DC.W 2005
- DC.W 1805
- DC.W 1605
- DC.W 1405
- DC.W 1205
- DC.W 1004
- DC.W 803
- DC.W 603
- DC.W 402
- DC.W 201
- DC.W -1
- DC.W -202
- DC.W -403
- DC.W -604
- DC.W -804
- DC.W -1005
- DC.W -1206
- DC.W -1406
- DC.W -1606
- DC.W -1806
- DC.W -2006
- DC.W -2205
- DC.W -2405
- DC.W -2603
- DC.W -2802
- DC.W -2999
- DC.W -3197
- DC.W -3394
- DC.W -3590
- DC.W -3786
- DC.W -3981
- DC.W -4176
- DC.W -4370
- DC.W -4564
- DC.W -4757
- DC.W -4949
- DC.W -5140
- DC.W -5330
- DC.W -5520
- DC.W -5709
- DC.W -5897
- DC.W -6084
- DC.W -6270
- DC.W -6456
- DC.W -6640
- DC.W -6823
- DC.W -7006
- DC.W -7187
- DC.W -7367
- DC.W -7546
- DC.W -7724
- DC.W -7901
- DC.W -8076
- DC.W -8250
- DC.W -8424
- DC.W -8595
- DC.W -8766
- DC.W -8935
- DC.W -9103
- DC.W -9269
- DC.W -9435
- DC.W -9598
- DC.W -9760
- DC.W -9921
- DC.W -10080
- DC.W -10238
- DC.W -10394
- DC.W -10549
- DC.W -10702
- DC.W -10854
- DC.W -11003
- DC.W -11151
- DC.W -11298
- DC.W -11443
- DC.W -11586
- DC.W -11727
- DC.W -11867
- DC.W -12004
- DC.W -12140
- DC.W -12274
- DC.W -12407
- DC.W -12537
- DC.W -12666
- DC.W -12792
- DC.W -12917
- DC.W -13039
- DC.W -13160
- DC.W -13279
- DC.W -13396
- DC.W -13511
- DC.W -13623
- DC.W -13734
- DC.W -13843
- DC.W -13949
- DC.W -14054
- DC.W -14156
- DC.W -14256
- DC.W -14354
- DC.W -14450
- DC.W -14544
- DC.W -14635
- DC.W -14724
- DC.W -14811
- DC.W -14896
- DC.W -14979
- DC.W -15059
- DC.W -15137
- DC.W -15213
- DC.W -15287
- DC.W -15358
- DC.W -15427
- DC.W -15493
- DC.W -15558
- DC.W -15619
- DC.W -15679
- DC.W -15736
- DC.W -15791
- DC.W -15843
- DC.W -15893
- DC.W -15941
- DC.W -15986
- DC.W -16029
- DC.W -16070
- DC.W -16108
- DC.W -16143
- DC.W -16176
- DC.W -16207
- DC.W -16235
- DC.W -16261
- DC.W -16285
- DC.W -16306
- DC.W -16324
- DC.W -16340
- DC.W -16354
- DC.W -16365
- DC.W -16373
- DC.W -16380
- DC.W -16383
- DC.W -16384
- DC.W -16383
- DC.W -16380
- DC.W -16373
- DC.W -16365
- DC.W -16354
- DC.W -16340
- DC.W -16324
- DC.W -16306
- DC.W -16285
- DC.W -16261
- DC.W -16235
- DC.W -16207
- DC.W -16176
- DC.W -16143
- DC.W -16108
- DC.W -16070
- DC.W -16029
- DC.W -15986
- DC.W -15941
- DC.W -15893
- DC.W -15843
- DC.W -15791
- DC.W -15736
- DC.W -15679
- DC.W -15619
- DC.W -15558
- DC.W -15493
- DC.W -15427
- DC.W -15358
- DC.W -15287
- DC.W -15213
- DC.W -15137
- DC.W -15059
- DC.W -14979
- DC.W -14896
- DC.W -14811
- DC.W -14724
- DC.W -14635
- DC.W -14544
- DC.W -14450
- DC.W -14354
- DC.W -14256
- DC.W -14156
- DC.W -14054
- DC.W -13949
- DC.W -13843
- DC.W -13734
- DC.W -13623
- DC.W -13511
- DC.W -13396
- DC.W -13279
- DC.W -13160
- DC.W -13039
- DC.W -12917
- DC.W -12792
- DC.W -12666
- DC.W -12537
- DC.W -12407
- DC.W -12274
- DC.W -12140
- DC.W -12004
- DC.W -11867
- DC.W -11727
- DC.W -11586
- DC.W -11443
- DC.W -11298
- DC.W -11151
- DC.W -11003
- DC.W -10854
- DC.W -10702
- DC.W -10549
- DC.W -10394
- DC.W -10238
- DC.W -10080
- DC.W -9921
- DC.W -9760
- DC.W -9598
- DC.W -9435
- DC.W -9269
- DC.W -9103
- DC.W -8935
- DC.W -8766
- DC.W -8595
- DC.W -8424
- DC.W -8250
- DC.W -8076
- DC.W -7901
- DC.W -7724
- DC.W -7546
- DC.W -7367
- DC.W -7187
- DC.W -7006
- DC.W -6823
- DC.W -6640
- DC.W -6456
- DC.W -6270
- DC.W -6084
- DC.W -5897
- DC.W -5709
- DC.W -5520
- DC.W -5330
- DC.W -5140
- DC.W -4949
- DC.W -4757
- DC.W -4564
- DC.W -4370
- DC.W -4176
- DC.W -3981
- DC.W -3786
- DC.W -3590
- DC.W -3394
- DC.W -3197
- DC.W -2999
- DC.W -2802
- DC.W -2603
- DC.W -2405
- DC.W -2205
- DC.W -2006
- DC.W -1806
- DC.W -1606
- DC.W -1406
- DC.W -1206
- DC.W -1005
- DC.W -804
- DC.W -604
- DC.W -403
- DC.W -202
- DC.W -1
- DC.W 201
- DC.W 402
- DC.W 603
- DC.W 803
- DC.W 1004
- DC.W 1205
- DC.W 1405
- DC.W 1605
- DC.W 1805
- DC.W 2005
- DC.W 2204
- DC.W 2404
- DC.W 2602
- DC.W 2801
- DC.W 2998
- DC.W 3196
- DC.W 3393
- DC.W 3589
- DC.W 3785
- DC.W 3980
- DC.W 4175
- DC.W 4369
- DC.W 4563
- DC.W 4756
- DC.W 4948
- DC.W 5139
- DC.W 5329
- DC.W 5519
- DC.W 5708
- DC.W 5896
- DC.W 6083
- DC.W 6269
- DC.W 6455
- DC.W 6639
- DC.W 6822
- DC.W 7005
- DC.W 7186
- DC.W 7366
- DC.W 7545
- DC.W 7723
- DC.W 7900
- DC.W 8075
- DC.W 8249
- DC.W 8423
- DC.W 8594
- DC.W 8765
- DC.W 8934
- DC.W 9102
- DC.W 9268
- DC.W 9434
- DC.W 9597
- DC.W 9759
- DC.W 9920
- DC.W 10079
- DC.W 10237
- DC.W 10393
- DC.W 10548
- DC.W 10701
- DC.W 10853
- DC.W 11002
- DC.W 11150
- DC.W 11297
- DC.W 11442
- DC.W 11585
- DC.W 11726
- DC.W 11866
- DC.W 12003
- DC.W 12139
- DC.W 12273
- DC.W 12406
- DC.W 12536
- DC.W 12665
- DC.W 12791
- DC.W 12916
- DC.W 13038
- DC.W 13159
- DC.W 13278
- DC.W 13395
- DC.W 13510
- DC.W 13622
- DC.W 13733
- DC.W 13842
- DC.W 13948
- DC.W 14053
- DC.W 14155
- DC.W 14255
- DC.W 14353
- DC.W 14449
- DC.W 14543
- DC.W 14634
- DC.W 14723
- DC.W 14810
- DC.W 14895
- DC.W 14978
- DC.W 15058
- DC.W 15136
- DC.W 15212
- DC.W 15286
- DC.W 15357
- DC.W 15426
- DC.W 15492
- DC.W 15557
- DC.W 15618
- DC.W 15678
- DC.W 15735
- DC.W 15790
- DC.W 15842
- DC.W 15892
- DC.W 15940
- DC.W 15985
- DC.W 16028
- DC.W 16069
- DC.W 16107
- DC.W 16142
- DC.W 16175
- DC.W 16206
- DC.W 16234
- DC.W 16260
- DC.W 16284
- DC.W 16305
- DC.W 16323
- DC.W 16339
- DC.W 16353
- DC.W 16364
- DC.W 16372
- DC.W 16379
- DC.W 16382
-
-
-
-
-
-
-